package com.yxinsur.imc.business.mapper;

import java.util.ArrayList;
import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxinsur.imc.business.domain.ImcCommRisk;
import com.yxinsur.imc.business.form.CommRiskForm;
import com.yxinsur.imc.business.vo.CommDetailsVo;
import com.yxinsur.imc.business.vo.CommRiskVo;
import org.apache.ibatis.annotations.Param;

/**
 * 佣金计算险种明细Mapper接口
 *
 * @author imc
 * @date 2021-05-26
 */
public interface ImcCommRiskMapper extends BaseMapper<ImcCommRisk> {
    /**
     * 查询佣金计算险种明细
     *
     * @param id 佣金计算险种明细ID
     * @return 佣金计算险种明细
     */
    public ImcCommRisk selectImcCommRiskById(Long id);

    /**
     * 查询佣金计算险种明细列表
     *
     * @param imcCommRisk 佣金计算险种明细
     * @return 佣金计算险种明细集合
     */
    public List<ImcCommRisk> selectImcCommRiskList(ImcCommRisk imcCommRisk);

    /**
     * 新增佣金计算险种明细
     *
     * @param imcCommRisk 佣金计算险种明细
     * @return 结果
     */
    public int insertImcCommRisk(ImcCommRisk imcCommRisk);

    /**
     * 修改佣金计算险种明细
     *
     * @param imcCommRisk 佣金计算险种明细
     * @return 结果
     */
    public int updateImcCommRisk(ImcCommRisk imcCommRisk);

    /**
     * 删除佣金计算险种明细
     *
     * @param id 佣金计算险种明细ID
     * @return 结果
     */
    public int deleteImcCommRiskById(String id);

    /**
     * 批量删除佣金计算险种明细
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteImcCommRiskByIds(String[] ids);

    List<CommRiskVo> selectCommRiskVoList(CommRiskForm commRiskForm);



    /**
     * 查询保单奖金相关信息
     * @param brokerId
     * @return
     */
    CommDetailsVo selectCommDetailsPremFirst(@Param("brokerId")Long brokerId,@Param("commId")Long commId);

    /**
     * 查询保单奖金续期信息
     * @param brokerId
     * @param commId
     * @return
     */
    CommDetailsVo selectCommDetailsPremRenw(@Param("brokerId")Long brokerId,@Param("commId")Long commId);

    ImcCommRisk selectImcCommRiskByOrderRiskId(@Param("orderRiskId") Long orderRiskId, @Param("commId") Long commId);

    List<ImcCommRisk> selectCommRiskByBrokerIdsAndMonth(@Param("brokerIds") List<Long> brokerIds, @Param("settleMonth") String settleMonth, @Param("commId") Long commId);

    void insertImcCommRiskList(@Param("commRisks") ArrayList<ImcCommRisk> commRisks);
}
